-- $Id$
-- $Source$
-- *****************************************************************
-- CISCO-IETF-ATM2-PVCTRAP-MIB-EXTN: atm pvc trap mib extension
--
-- January 2001  B.L Balaji
--
-- Copyright (c) 2001 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
-- $Log$
-- *****************************************************************
-- $Endlog$

CISCO-IETF-ATM2-PVCTRAP-MIB-EXTN DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Gauge32,
        Counter32
                FROM SNMPv2-SMI
        TimeStamp
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        ifIndex
                FROM IF-MIB
        atmInterfaceConfEntry,
        atmVclVpi,
        atmVclVci
                FROM ATM-MIB
        ciscoExperiment
                FROM CISCO-SMI;

ciscoIetfAtm2PvctrapMIBExtn MODULE-IDENTITY
        LAST-UPDATED    "200007110000Z"
        ORGANIZATION    "Cisco Systems, Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA

                   Tel: +1 800 553-NETS

                E-mail: cs-atm@cisco.com"

        DESCRIPTION
                "This MIB Module is a supplement to the
                 CISCO-IETF-ATM2-PVCTRAP-MIB."
        ::= { ciscoExperiment 31 }

atm2MIBObjectsExtn  OBJECT IDENTIFIER ::= 
                                      { ciscoIetfAtm2PvctrapMIBExtn 1 }
atm2MIBTrapsExtn    OBJECT IDENTIFIER ::= 
                                      { ciscoIetfAtm2PvctrapMIBExtn 2 }

atmInterfaceExt2Table   OBJECT-TYPE
        SYNTAX          SEQUENCE OF AtmInterfaceExt2Entry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
         "This table contains ATM interface monitoring
          information not defined in the
          atmInterfaceConfTable from the ATM-MIB and
          atmInterfaceExtTable CISCO-IETF-ATM2-PVCTRAP-MIB."
        ::= { atm2MIBObjectsExtn 1 }

atmInterfaceExt2Entry   OBJECT-TYPE
        SYNTAX          AtmInterfaceExt2Entry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
         "An entry extends the atmInterfaceConfEntry
          defined in ATM MIB.  Each entry corresponds
          to an ATM interface."
        AUGMENTS        { atmInterfaceConfEntry }
        ::= { atmInterfaceExt2Table 1 }

AtmInterfaceExt2Entry    ::= SEQUENCE  {
        atmIntfCurrentlyDownToUpPVcls   Gauge32,
        atmIntfOAMFailedPVcls           Gauge32,
        atmIntfCurrentlyOAMFailingPVcls Gauge32
        }

atmIntfCurrentlyDownToUpPVcls   OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The current number PVCLs on this interface which 
          changed state to 'up' since the last 
          atmIntPvcUpTrap was sent."
        ::= { atmInterfaceExt2Entry 1 }

atmIntfOAMFailedPVcls   OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The total number of PVCLs in this interface which 
          are currently in the oam loopback failed condition but 
          the status of each PVCL remain in the 'up' state."
        ::= { atmInterfaceExt2Entry 2 }

atmIntfCurrentlyOAMFailingPVcls         OBJECT-TYPE
        SYNTAX          Gauge32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The current number of PVCLs on this interface for which the
          oam loop back has failed but the status of each PVCL remain 
          in the 'up' state in the last notification interval."
        ::= { atmInterfaceExt2Entry 3 }

atmCurrentStatusChangePVclTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF AtmCurrentStatusChangePVclEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
         "A table indicating all VCLs for which there is an
          active row in the atmVclTable having an atmVclConnKind
          value of `pvc' and atmVclOperStatus to have changed in the
          last PVC notification interval."
        ::= { atm2MIBObjectsExtn 2 }

atmCurrentStatusChangePVclEntry         OBJECT-TYPE
        SYNTAX          AtmCurrentStatusChangePVclEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
         "Each entry in the table represents a VCL for which
          there is an active row in the atmVclTable having an
          atmVclConnKind value of `pvc' and atmVclOperStatus
          to have changed in the last PVC notification interval."
        INDEX           { ifIndex, atmVclVpi, atmVclVci }
        ::= { atmCurrentStatusChangePVclTable 1 }

AtmCurrentStatusChangePVclEntry ::=     SEQUENCE        {
        atmPVclStatusTransition         Counter32,
        atmPVclStatusChangeStart        TimeStamp,
        atmPVclStatusChangeEnd          TimeStamp
        }

atmPVclStatusTransition         OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The number of state transitions that has happened 
          on this PVCL in the last notification interval."
        ::= { atmCurrentStatusChangePVclEntry 1 }

atmPVclStatusChangeStart        OBJECT-TYPE
        SYNTAX          TimeStamp
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The time stamp at which this PVCL changed state for the
          first time in  the last notification interval."
        ::= { atmCurrentStatusChangePVclEntry 2 }

atmPVclStatusChangeEnd          OBJECT-TYPE
        SYNTAX          TimeStamp
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The time stamp of the last state change of this PVCL
          in the last notification interval."
        ::= { atmCurrentStatusChangePVclEntry 3 }

atmStatusChangePVclRangeTable           OBJECT-TYPE
        SYNTAX          SEQUENCE OF AtmStatusChangePVclRangeEntry   
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
         "A table indicating more than one VCLs in a consecutive 
          range and for each VCL there is an active row in the 
          atmVclTable having an atmVclConnKind value of `pvc'
          and atmVclOperStatus to have changed in the same
          direction in the last PVC notification interval."
        ::= { atm2MIBObjectsExtn 3 }
 
atmStatusChangePVclRangeEntry           OBJECT-TYPE
        SYNTAX          AtmStatusChangePVclRangeEntry   
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
         "Each entry in this table represents a range of VCLs and 
          for each VCL there is an active row in the atmVclTable having
          an atmVclConnKind value of 'pvc' and atmVclOperStatus to have
          changed in the same direction in the last notification 
          interval."
        INDEX           { ifIndex, atmVclVpi, rangeIndex  }
        ::= { atmStatusChangePVclRangeTable 1 }

rangeIndex  OBJECT-TYPE
        SYNTAX          Counter32 
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
         "Index to represent different ranges, the first range is 
         indexed by value 0, the second by 1 and so on..."
        ::= { atm2MIBObjectsExtn 4 }

AtmStatusChangePVclRangeEntry ::=       SEQUENCE        {
        atmPVclLowerRangeValue                  INTEGER,
        atmPVclHigherRangeValue                 INTEGER,
        atmPVclRangeStatusChangeStart           TimeStamp,
        atmPVclRangeStatusChangeEnd             TimeStamp
        }

atmPVclLowerRangeValue    OBJECT-TYPE
        SYNTAX          INTEGER (0..65536) 
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The first PVCL in a range of PVcls for which the 
          atmVclOperStatus to have changed in the last 
          notification interval."
        ::= { atmStatusChangePVclRangeEntry 1 }

atmPVclHigherRangeValue OBJECT-TYPE
        SYNTAX          INTEGER  (0..65536) 
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The last PVCL in a range of PVcls for which the 
          atmOperStatus to have changed in the last 
          notification interval."
        ::= { atmStatusChangePVclRangeEntry 2 }

atmPVclRangeStatusChangeStart   OBJECT-TYPE
        SYNTAX          TimeStamp
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The time stamp at which the first PVCL in the range
          changed state in the last notification interval."
        ::= { atmStatusChangePVclRangeEntry 3 }

atmPVclRangeStatusChangeEnd     OBJECT-TYPE
        SYNTAX          TimeStamp
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
         "The time stamp at which the last PVCL in the range
          changed state in the last notification interval."
        ::= { atmStatusChangePVclRangeEntry 4 }

atmPvcTrapsExtn             OBJECT IDENTIFIER ::= { atm2MIBTrapsExtn 1 }
atmPvcTrapsPrefixExtn       OBJECT IDENTIFIER ::= { atmPvcTrapsExtn 0 }

atmIntfPvcUpTrap        NOTIFICATION-TYPE
        OBJECTS         { ifIndex, 
                          atmIntfCurrentlyDownToUpPVcls }
        STATUS          current
        DESCRIPTION
         "A notification indicating that one or more
          PVCLs on this interface has changed state back to 'up'
          since the last atmIntfPvcUpTrap was sent. If the trap 
          has not been sent for the last notification interval 
          it will be sent when a PVCL changes state back to 'up'."
        ::= { atmPvcTrapsPrefixExtn 1 }

atmIntfPvcOAMFailureTrap    NOTIFICATION-TYPE
        OBJECTS         { ifIndex, 
                          atmIntfOAMFailedPVcls,
                          atmIntfCurrentlyOAMFailingPVcls }
        STATUS          current
        DESCRIPTION
         "A notification indicating that one or more
          PVCLs on this interface has OAM loop back failed 
          since the last atmIntfPvcOAMFailuresTrap was sent.
          If this trap has not been sent for the last
          atmIntfPvcNotificationInterval, then it will be
          sent on the next increment of atmIntfPvcOAMFailures."
        ::= { atmPvcTrapsPrefixExtn 2 }

-- Conformance Information

pvctrapMIBExtnConformance            OBJECT IDENTIFIER ::= 
                                       { ciscoIetfAtm2PvctrapMIBExtn 3 }
pvctrapMIBExtnConformanceCompliances OBJECT IDENTIFIER ::= 
                                       { pvctrapMIBExtnConformance 1 }
pvctrapMIBExtnConformanceGroups      OBJECT IDENTIFIER ::= 
                                       { pvctrapMIBExtnConformance 2 }

-- Compliance Statement
pvctrapMIBExtnConformanceCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                this extended pvc traps."
        MODULE  -- this module
                MANDATORY-GROUPS { pvctrapExtnGroup }
        ::= { pvctrapMIBExtnConformanceCompliances 1 }

-- units of conformance:

pvctrapExtnGroup OBJECT-GROUP
        OBJECTS {
                atmIntfOAMFailedPVcls,
                atmIntfCurrentlyOAMFailingPVcls,
                atmIntfCurrentlyDownToUpPVcls,
                atmPVclLowerRangeValue,
                atmPVclHigherRangeValue,
                atmPVclRangeStatusChangeStart,
                atmPVclRangeStatusChangeEnd,
                atmPVclStatusTransition,
                atmPVclStatusChangeStart,
                atmPVclStatusChangeEnd
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing 
                 parameters for extended pvc traps."
        ::= { pvctrapMIBExtnConformanceGroups 1 }

END